package com.hiraeth.modules.monitor.model.sd;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.hiraeth.modules.monitor.model.common.TlsConfig;
import lombok.Data;

import java.io.Serializable;

/**
 * 
 * @author xuning
 *
 */
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class OpenstackSdConfig implements Serializable {
	
	private static final long serialVersionUID = 3098584269038497527L;

	/**
	 * 应该被发现的openstack角色
	 */
	private String role;
	
	/**
	 * Openstack Region
	 */
	private String region;
	
	/**
	 * identity endpoint
	 */
	private String identity_endpoint;
	
	/**
	 * 用户名或用户ID
	 */
	private String username;
	private String userid;
	
	/**
	 * 用户密码
	 */
	private String secret;
	
	/**
	 * 如果使用Identity V3，domain_name和doain_id都是必填的，其他情况下是可选的
	 */
	private String domain_name;
	private String domain_id;
	
	/**
	 * 使用 Identity V2时是可选的，其他情况根据情况设置
	 */
	private String project_name;
	private String project_id;
	
	/**
	 * 
	 */
	private String application_credential_name;
	private String application_credential_id;
	
	private String application_credential_secret;
	
	/**
	 * 服务发现是否应该列出所有项目的所有实例。它只与“实例”角色相关，通常需要管理权限。 默认值为false
	 */
	private boolean all_tenants;
	
	/**
	 * 刷新间隔以重新读取实例列表。默认值60s
	 */
	private String refresh_interval;
	
	/***
	 * 获取metrics的端口。如果使用自定义IP地址，则必须在重新标记规则中指定。
	 */
	private int port;
	
	/**
	 * TLS 配置
	 */
	private TlsConfig tls_config;

}
